/*
Golang程序的基本结构
*/

// 定义包名 PS：main包能编译成可执行文件
package main

// 导入语句，包用双引号
import "fmt"

/*
	func声明函数
	main()函数是程序入口主函数,一个程序只有一个;
	{}语句块;
	main函数无参数无返回值；
	函数外只能放置标识符（变量/常量/函数/类型）的声明，不能写语句，语句要写在语句块里；
*/
func main() {
	// fmt.Println 使用fmt包中的Println函数
	fmt.Println("人生苦短，Let's GO!")
}

/*
go build的使用：
1.在项目路径下使用，直接使用go build；（推荐使用）
2.在其他路径下使用，需要在go build后添加项目路径（路径从GOPATH/src后的路径直到项目根目录）；
3.自定义编译后的文件名使用go build -o,-o表示输出后的名字；
*/
/*
执行程序：
1.可执行文件直接执行
2.go run xxx.go
*/
/*
go install理解:
分为两步：
1.先编译得到一个可执行文件
2.把可执行文件copy到GOPATH/bin下
3.因为GOPATH/bin被配置到环境变量path下，所以能实现在任何地方执行编译后的文件
PS：GOPATH与java中的CLASSPATH作用一致
*/
/*
交叉编译：go支持跨平台编译
例如：在win平台编译linux可执行程序叫做交叉编译；
	SET CGO_ENABLED=0   // 设置CGO禁止启动
	SET GOOS=linux		// 设置编译需要的系统名（mac：darwin）
	SET GOARCH=amd64	// 设置编译需要的架构（32位、64位）
然后go build，SET是windows命令，mac/linux下不加SET，直接在go build前设置编译变量
*/
